package com.changgou.goods.feign;

import com.changgou.entity.Result;
import com.changgou.goods.pojo.Sku;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @description: 暴露接口
 * @author: 大佬味的小男孩
 * @date: 2020-07-22 18:42
 **/
@FeignClient(name = "goods")
public interface SkuFeign {

    /**
     * @param spuId
     * @return com.changgou.entity.Result
     * @description: 多条件 通过spuid 和all 查询sku的数据
     * @author 大佬味的小男孩
     * @date 2020/07/22 20:51
     */
    @GetMapping("sku/spu/{spuId}")
    public List<Sku> findSkuListByspuid(@PathVariable("spuId") String spuId);

    /**
     * @param id
     * @return com.changgou.entity.Result<com.changgou.goods.pojo.Sku>
     * @description: 根据id查询sku的商品数据
     * @author 大佬味的小男孩
     * @date 2020/08/01 11:01
     */
    @GetMapping("sku/{id}")
    public Result<Sku> findById(@PathVariable("id") String id);

    /**
     * @param username
     * @return com.changgou.entity.Result
     * @description: 1.获取购物车的数据 2.循环扣减库存并增加销量
     * @author 大佬味的小男孩
     * @date 2020/08/03 17:16
     */
    @PostMapping("/sku/decr/count")
    public Result decrCount(@RequestParam("username") String username);

    /**
     * @param skuId
     * @param num
     * @return com.changgou.entity.Result
     * @description: 回滚库存：增加库存并扣减销量
     * @author 大佬味的小男孩
     * @date 2020/08/06 10:26
     */
    @RequestMapping("/sku/resumeStockNum")
    public Result resumeStockNum(@RequestParam("skuId") String skuId, @RequestParam("num") Integer num);

}
